#include <GLEventReceiver.hpp>
#include <KeyboardReceiver.hpp>
#include <GL/glut.h>

#ifndef _CLASSHARDWARESCREEN_
#define _CLASSHARDWARESCREEN_

namespace Hardware {

class Arcade
{
public:
    static void turnOn();

    static Hardware::GLEventReceiver* getGLEventReceiver();
    static void setGLEventReceiver(Hardware::GLEventReceiver* glEventReceiver);

    static Hardware::KeyboardReceiver* getKeyboardReceiver();
    static void setKeyboardReceiver(Hardware::KeyboardReceiver* keyboardReceiver);

private:
    static Hardware::GLEventReceiver* glEventReceiver;
    //static Hardware::KeyboardReceiver* keyboardReceiver;

    static int windowId;

    static void display();
    static void animate();
    static void reshape(int width, int height);
    static void keyboard(unsigned char key, int x, int y);
    static void keyboardSpecial(int key, int x, int y);

    static int init();
    static int initCode;
};

}// namespace Hardxware

#endif

